The ability of modern computer and data processing systems to share data has largely contributed to the popularity and rapid expansion of computer networking industries such as the Internet. In response to the insatiable demand to exchange data over networks or via other means, computer systems and software developers have created various conventional data sharing mechanisms to allow one or more computer systems to obtain access to data created, stored, or maintained by another computer system. Generally, computer systems that share data do so over a network using one or more standardized client/server protocols for the data exchange. Many such client/server protocols exist, examples of which include database access protocols, file sharing and file system protocols (e.g., the Network File System or NFS protocol developed by Sun Microsystems, Inc. of Mountain View, Calif., U.S.A.), and world wide web (WWW) based protocols. Using such mechanisms, two or more computer systems can share data that is stored in a format that each computer system can readily access. Other data conventional sharing systems have also been developed to allow two computer systems to have shared access to data from a commonly shared data storage device or data storage system that has a connection (either direct or over a network) to each computer system.
In some instances, certain computer systems create and manipulate data in a format that is natively different than data formats used by other computer systems. For example, conventional computer systems commonly referred to as “open systems” operate under the control of an open systems operating system such Unix (or a Unix variant) or Microsoft Windows (e.g., Windows 95, Windows 98 or Windows 2000), manufactured by Microsoft Corporation of Redmond, Wash., USA (Windows is a trademark of Microsoft Corporation). Such open-systems operating systems typically store data in files that conform to an “open systems” or “flat file” format. Generally, the open systems file format defines a format for data stored in a file as a continuous string or stream of bytes of data beginning at a certain location in storage (i.e., in memory or on disk) and continuing for a certain length or number of bytes in the storage medium (i.e., on disk or in memory). Open systems based computing systems thus don't interpret the contents of data such as a file maintained in storage by the operating system. Instead, applications are free to establish their own mechanisms for handling how the data is managed within files.
A software application operating on an open systems computing platform can provide a data access request to the open systems operating system that includes information that allows the operating system to process the data access request. For example, a “read” data access request might appear as follows: “read filename(offset, length)”. In this example, the “filename” portion of the data access request specifies the name of a data (e.g., a file in this example) in storage and allows the operating system to find the beginning of the data. The “offset” portion of the data access request specifies a specific location (e.g., byte number) into the data at which the data access operation is to begin to be performed. For this example, the offset indicates where the read operation should begin in the data. The “length” portion of the data access request indicates how much data, beginning at the offset position, the operating system should access (e.g., should read in this example) on behalf of the application providing the data access request.
Other types of computer systems, such as mainframe computers, typically store data in files which are organized as record-based sets of data known as data sets. Unlike open systems computing platforms, a non-open systems computing platform such as a mainframe computer system operates applications that do not expect to have a need to directly access data based on byte offsets into the data. Instead, data records are more meaningful to such non-open systems applications. As such, each data set may have its own predefined format such as a fixed block format, a variable-block format or a VSAM format. The operating system (e.g., MVS) that operates on a mainframe computer system “understands” the predefined format for data stored by the mainframe computer system. Mainframe computer systems are often called “non-open systems” computer systems do to the proprietary data formats used to store data in such systems. Such non-open data formats do not readily allow the data to the shared with other computer systems that use a standard open systems data format.
Applications that operate on mainframe computer systems can provide a non-open systems data access requests to the mainframe operating system that indicate, for example, a specific record and/or specific block at which the data access is to take place. Record lengths can vary from one record to another within a single data set. Accordingly, to reference a specific byte of data at a given location within a data set, the non-open systems data access request must include the record number as well as a position within that record. However, as noted above, typical applications require access to the entire record rather than to a specific byte of information within a record.
Software developers have created conventional software systems that can allow a software application operating on open systems computing platform, such as a computer system running the Unix operating system, to access data stored within a mainframe data set. An example of such a software system is the InfoMover software system developed by EMC Corporation of Hopkinton, Mass., USA.
InfoMover operates in conjunction with an open systems operate system such as Unix to service open-systems data access requests which attempt to access mainframe data stored in mainframe data sets. In order to properly obtain access to the data in the mainframe data set at the proper location, InfoMover receives an open systems data access request and starts performing a seek access operation at the beginning of the mainframe data set containing the requested data. During the seek access operation, the InfoMover system counts the number of bytes in each sequential record within the mainframe data set, beginning at the start of the first record in the data set, and continues counting bytes until the desired open systems offset is reached in the data within the data set. At that point, InfoMover can access the data according to the data access request in order to provide data from the mainframe data set to the requesting open systems software application. Various aspects of the InfoMover software system are discussed in the U.S. patent application Ser. No. 09/479,512, entitled “METHODS AND APPARATUS FOR ACCESSING SHARED DATA”, filed Jan. 7, 2000, which was incorporated by reference above.